﻿using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using RxxApi.Model;

namespace RxxApi.Api.Controllers;

[ApiController]
[Route("api/[controller]/[action]")]
[Produces("application/json")] //返回数据的格式 直接约定为Json
[Authorize]
public class BaseApiController : ControllerBase
{
    [NonAction]
    public MessageModel Success(string msg = "成功")
    {
        return new MessageModel()
        {
            success = true,
            msg = msg,
            response = null,
        };
    }

    [NonAction]
    public MessageModel<T> Success<T>(T data, string msg = "成功")
    {
        return new MessageModel<T>()
        {
            success = true,
            msg = msg,
            response = data,
        };
    }

    [NonAction]
    public MessageModel<string> Failed(string msg = "失败", int status = 500)
    {
        return new MessageModel<string>()
        {
            success = false,
            status = status,
            msg = msg,
            response = null,
        };
    }

    [NonAction]
    public MessageModel<T> Failed<T>(string msg = "失败", int status = 500)
    {
        return new MessageModel<T>()
        {
            success = false,
            status = status,
            msg = msg,
            response = default,
        };
    }
}
